package net.zjitc.mapper;

import net.zjitc.po.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * Created by Administrator on 2018/1/3.
 */
/*使用注解的方式完成CURD,
* 使用注解的方式可以不用写mapper.xml文件*/
public interface UserAnnotationMapper {
    //添加一个用户
    /*#{}占位符，里面的值user的属性名，
    *useGeneratedKeys:表示的是主键自动产生
    * id：赋值的对象的id属性
     *  */
    @Insert("INSERT into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})")
    @Options(useGeneratedKeys = true,keyProperty ="id" )
    void addUser(User user);

    /**
     * 查询所有用户
     * @return
     */
    @Select("select * from user")
    List<User> findAllUser();

    /**
     * 查出的数据，就和实体类的属性一一对应（列名 和属性名一样）
     * 如果列名和属性名不一样怎么办？使用@result注解将列名和属性名进行映射
     * @param uid
     * @return
     */

    @Select("select id uid,username un from user where id = #{id}")
    @Results({
            @Result( id = true,column = "uid",property = "id"),
            @Result(column = "un",property = "username")
    })
    User findById(@Param("id") int uid);

    //
}
